package br.com.infnet.cultbook.service.impl;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.ejb.Remove;
import javax.ejb.Stateful;

import br.com.infnet.cultbook.domain.pedido.ItemPedido;
import br.com.infnet.cultbook.domain.pedido.Pedido;
import br.com.infnet.cultbook.service.CarrinhoService;
import br.com.infnet.cultbook.service.PedidoService;

@Stateful
public class CarrinhoServiceImpl implements CarrinhoService {
	
	@EJB
	private PedidoService pedidoService;
	
	private List<ItemPedido> itens = new ArrayList<ItemPedido>();
	
	@PostConstruct
	public void init() {
		System.out.println("Carrinho Criado");
	}
	
	public void adicionarItemPedido(ItemPedido itemPedido) {
		itens.add(itemPedido);
	}
	
	public void removerProduto(ItemPedido itemPedido) {
		itens.remove(itemPedido);
	}

	public List<ItemPedido> buscarTodosItens() {
		return itens;
	}
	
	public Pedido fecharPedido() {
		Pedido pedido = new Pedido();
		Date data = new Date();
		pedido.setNumero(data.getTime());
		pedido.setData(data);
		pedido.setItensPedido(itens);
		pedidoService.fecharPedido(pedido);
		esvaziarCarrinho();
		return pedido;
	}
	
	@Remove
	public void esvaziarCarrinho() {
		itens.clear();
		System.out.println("Carrinho esvaziado");
	}
}
